﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using log4net;
using Iudicium.Parametros;
using Iudicium.Parametros.CRN;

public partial class Parametros_TipoContacto_FormularioTipoContacto : System.Web.UI.Page
{
    private static readonly ILog log = LogManager.GetLogger("LogFile");
    private int TipoContactoId
    {
        set { TipoContactoIdHiddenField.Value = value.ToString(); }
        get
        {
            int TipoContactoId = 0;
            try
            {
                TipoContactoId = Convert.ToInt32(TipoContactoIdHiddenField.Value);
            }
            catch (Exception ex)
            {
                log.Error("No se pudo convertir TipoContactoIdHiddenField.Value a un valor entero", ex);
            }
            return TipoContactoId;
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            ObtenerParametros();
        }
        TipoContactoTextBox.Focus();
    }
    private void ObtenerParametros()
    {
        if (Session["TipoContactoId"] != null && !string.IsNullOrEmpty(Session["TipoContactoId"].ToString()))
        {
            TipoContactoIdHiddenField.Value = Session["TipoContactoId"].ToString();
            CargarDatos();
        }
        Session["TipoContactoId"] = null;
    }
    private void CargarDatos()
    {
        TipoContacto objTipoContacto = null;
        try
        {
            objTipoContacto = TipoContactoCRN.GetTipoContactoById(TipoContactoId);
        }
        catch (Exception ex)
        {
            log.Error("No se pudo obtener el TipoContacto con id: " + TipoContactoId, ex);
        }
        if (objTipoContacto == null)
            return;

        TipoContactoTextBox.Text = objTipoContacto.Descripcion;
    }
    protected void GuardarLinkButton_Click(object sender, EventArgs e)
    {
        TipoContacto objTipoContacto = new TipoContacto(TipoContactoId, TipoContactoTextBox.Text);
        if (TipoContactoId == 0)
        {
            try
            {
                TipoContactoId = TipoContactoCRN.InsertTipoContacto(objTipoContacto);
            }
            catch (Exception ex)
            {
                log.Error("No se pudo insertar el TipoContacto", ex);
                Iudicium.Utilitarios.Notificacion.MostrarNotificacion(
                    "El registro del TipoContacto no se pudo completar correctamente.",
                    Iudicium.Utilitarios.Notificacion.TipoNotificacion.Error);
                return;
            }
            Iudicium.Utilitarios.Notificacion.MostrarNotificacion(
                    "El registro del TipoContacto se realizó correctamente.",
                    Iudicium.Utilitarios.Notificacion.TipoNotificacion.Alert);
        }
        else
        {
            try
            {
                TipoContactoCRN.UpdateTipoContacto(objTipoContacto);
            }
            catch (Exception ex)
            {
                log.Error("No se pudo actualizar los datos del TipoContacto", ex);
                Iudicium.Utilitarios.Notificacion.MostrarNotificacion(
                    "Los datos del TipoContacto no se pudieron editar correctamente.",
                    Iudicium.Utilitarios.Notificacion.TipoNotificacion.Error);
                return;
            }
            Iudicium.Utilitarios.Notificacion.MostrarNotificacion(
                    "Los datos del TipoContacto se editaron correctamente.",
                    Iudicium.Utilitarios.Notificacion.TipoNotificacion.Alert);
        }
        Response.Redirect("~/Parametros/TipoContactos/ListaTipoContactos.aspx");
    }    
}
